﻿using System;
using System.Collections.Generic;
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Audio;
using Microsoft.Xna.Framework.Content;
using Microsoft.Xna.Framework.GamerServices;
using Microsoft.Xna.Framework.Graphics;
using Microsoft.Xna.Framework.Input;
using Microsoft.Xna.Framework.Net;
using Microsoft.Xna.Framework.Storage;
using PoolGame2.Assets;
using PoolGame2.Physics;
using PoolGame2.Menus;
using PoolGame2.Player;
using PoolGame2.Networking;
using PoolGame2.Managers;
using PoolGame2.Controls;
using PoolGame2.Game;

namespace PoolGame2.Rules
{
    public abstract class RuleC
    {
        public enum RulesEnum
        {
            POT_COLOUR_FIRST = 0,
            POT_STRIPE_FIRST,
            POT_CUE,
            POT_VALID,
            POT_INVALID,
            POT_WIN,
            POT_LOSE,
            SHOT_VALID,
            SHOT_INVALID,
            ERROR
        };
        public enum RuleTasks
        {
            SWITCH_PLAYER = 0,
            RERACK,
            KILL_GAME,
            WIN_GAME,
            CHOOSE_COLOUR,
            CHOOSE_STRIPES,
            TWO_SHOTS,
            RESET_CUEBALL,
            POT_VALID,
            OK,
        }

        public RuleC(){
        }

        public abstract RulesEnum CheckRules(Ball ball);
        public abstract RulesEnum CheckRules(Ball ball1, Ball ball2);
    }
}
